package cn.bytengine.stem.contexts;

import java.util.Map;

/**
 * 属性数据设置器
 *
 * @param <T> 属性数据设置器的实现类
 */
public interface Setter<T extends Setter<T>> {
    /**
     * 设置指定key对应的上下文数据
     *
     * @param key   上下文对应数据的key
     * @param value 上下文对应key的数据
     * @return 返回当前上下文实例，支持链式调用
     */
    T set(String key, Object value);

    /**
     * 根据指定Map，设置指定key对应的上下文数据
     *
     * @param data 要设置的Map数据内容
     * @return 返回当前上下文实例，支持链式调用
     */
    T set(Map<String, Object> data);
}
